package com.jackstraw.jack_base.rules.entity.dto;

import lombok.Data;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

/**
 * 描述：规则执行传参封装对象
 */
@Data
public class RuleExecutionObject implements Serializable {

    /**
     * fact集合
     */
    private Map<String, Object> factObjectMap = new HashMap<>();
    /**
     * 全局对象集合
     */
    private Map<String, Object> globalMap = new HashMap<>();

    /**
     * 根据规则名称过滤要执行的规则
     */
    private String ruleName;

    /**
     * 根据组名称过滤要执行的规则
     */
    private String groupName;


    /**
     * 添加fact对象
     *
     * @param fullClassName fact对象class全类名
     * @param factObject    fact对象
     */
    public void addFactObject(String fullClassName, Object factObject) {
        this.factObjectMap.put(fullClassName, factObject);
    }

    /**
     * 添加fact对象集合
     *
     * @param factObjects fact对象集合
     */
    public void addFactObject(Map<String, Object> factObjects) {
        this.factObjectMap.putAll(factObjects);
    }

    /**
     * 设置Global参数
     *
     * @param key   key
     * @param value 值
     */
    public void setGlobal(String key, Object value) {
        this.globalMap.put(key, value);
    }


}
